//引入express模块
const {
    response
} = require("express")
const express = require("express")
const {
    request
} = require("http")
//引入path模块
const path = require("path")
//创建应用对象
const app = express()

//处理body请求体的中间件
app.use(express.urlencoded())
app.use(express.json())


// 手写一个类似与body的form表单类型文件处理的 中间件
// app.use("/user-post", (request, response, next) => {
//     let dataStr = ""
//     //绑定data事件，读取响应体的内容
//     request.on("data", chunk => {
//         // console.log(chunk.toString());

//         // 将空字符串与每次读取的响应体内容做累加
//         dataStr += chunk.toString()
//     })

//     // 绑定end事件，读取完后打印响应体的内容，此时内容的格式为form表单（name=123&age=31&gender=m），需要转化为对象
//     request.on("end", chunk => {
//         // console.log("okkk", dataStr.split("&")); //name=123&age=31&gender=m


//         // 写法一：
//         // const obj = {}
//         // dataStr.split("&").forEach((item) => {
//         //     // console.log(item); //name=123  age=31  gender=m
//         //     // console.log(item.split("="));
//         //     const [key, value] = item.split("=")
//         //     obj[key] = value //{ name: '123', age: '31', gender: 'm' }
//         // })

//         // 写法二：
//         const obj = dataStr.split("&").reduce((prev, current) => {
//             const [key, value] = current.split("=")
//             prev[key] = value
//             return prev
//         }, {})
//         request.body = obj
//         next()
//     })
// })



// 搭建学生信息接口（get请求）
app.all("/user", (request, response) => {
    console.log(request.query);
    console.log(request.params);
    const {
        userId
    } = request.query

    if (userId !== "001") {
        return response.send({
            code: 10001,
            msg: "查询失败",
            data: null
        })
    }
    response.send({
        code: 10000,
        msg: "查询成功",
        data: {
            name: "liuMin",
            age: 31,
            gender: "男"
        }
    })

})


//搭建post个人信息路由
app.all("/user-post", (request, response) => {
    console.log("user");
    console.log(request.body);

    const {
        name,
        age,
        gender
    } = request.body


    if (!name || !age || !gender) {
        return response.send({
            code: 10001,
            msg: "添加失败",
            data: null
        })
    }

    response.send({
        code: 10000,
        msg: "添加成功",
        data: {
            name: "liuMin",
            age: 31,
            gender: "m"
        }
    })
})


//搭建路由(get)
app.all("/1", (request, response) => {
    const filePath = path.resolve(__dirname, "./01.基础的get请求.html")
    response.sendFile(filePath)
})
//搭建路由(post)
app.all("/2", (request, response) => {
    const filePath = path.resolve(__dirname, "./02.post请求.html")
    response.sendFile(filePath)
})


//设置端口，开启路由
app.listen(8383, () => {
    console.log("服务器开启成功，请访问 http://127.0.0.1:8383");
})